package view.backing.Utils.Validator;

import chemtools_logica.Beans.PersonaBean;

import chemtools_logica.Beans.RolBean;
import chemtools_logica.Beans.UsuarioBean;

import chemtools_logica.LN.IR.LN_SFPersonaRemote;

import chemtools_logica.LN.IR.LN_SFUsuarioRemote;

import java.util.Hashtable;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class UsuarioNameValidator implements Validator {
    public UsuarioNameValidator() {
        super();
    }
    LN_SFUsuarioRemote lN_SFUsuarioRemote;
    @Override
    public void validate(FacesContext facesContext, UIComponent uIComponent, Object object) throws ValidatorException {
        try {
            final Context context = getInitialContext();
            lN_SFUsuarioRemote = (LN_SFUsuarioRemote) context.lookup("map-LN_SFUsuario#chemtools_logica.LN.IR.LN_SFUsuarioRemote"); 
        }catch(NamingException e){return;}
        
        String nombre = object.toString();
        UsuarioBean u=new UsuarioBean();
        u.setPersona(new PersonaBean());
        u.setRol(new RolBean());
        u.setNombre_Usuario(nombre);
        u.setEstado(-1);
        if(lN_SFUsuarioRemote.buscarUsuarios(u).size()>0){
        FacesMessage fm = new FacesMessage("El nombre de Usuario ya Existe");
        throw new ValidatorException(fm);
        }
        }
        private static Context getInitialContext() throws NamingException {
        Hashtable env = new Hashtable();
        // WebLogic Server 10.x/12.x connection details
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7101");
        return new InitialContext(env);
        }
}
